// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

package com.fowo.api.model.tmp.fba.shipment.product;

import com.fowo.api.common.annotaion.DataObjectType;
import com.fowo.api.common.meta.MetaDataObject;
import com.fowo.api.common.meta.MetaDataObjects;
import com.fowo.api.common.model.PageSearch;
import com.fowo.api.common.mybatis.helper.PageSearchHelper;
import com.fowo.api.common.util.ListUtils;
import com.fowo.api.entity.TmpFbaShipmentProduct;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

@DataObjectType(TmpFbaShipmentProduct.class)
@Setter
@Getter
public class TmpFbaShipmentProductSearchParamPo extends PageSearch {

  private static MetaDataObject metaDataObject;

  @Override
  public void applySqlSegments() {
    if (metaDataObject == null) {
      metaDataObject =
        ListUtils.find(
          MetaDataObjects.getObjects(),
          o -> "TmpFbaShipmentProduct".equals(o.getName())
        );
    }
    PageSearchHelper.fillSqlSegments(this, metaDataObject);
  }

  @Override
  public void initFinal() {
    super.initFinal();
    applySqlSegments();
  }

  /**
   * 获取关联字段的查询表别名信息
   */
  @Override
  public Map<String, String> getJoinFieldTableAliasMap() {
    Map<String, String> map = new HashMap<>();
    return map;
  }

  @Override
  public Map<String, OptionalJoinField> getOptionalJoinFields() {
    Map<String, OptionalJoinField> map = new HashMap<>();

    return map;
  }

  /**
   * 编号
   */
  private Long id;

  /**
   * 最小编号
   */
  private Long idMin;

  /**
   * 最大编号
   */
  private Long idMax;

  /**
   * 编号 比较(eq)
   */
  private Long idEq;
  /**
   * 编号 比较(neq)
   */
  private Long idNeq;
  /**
   * 编号 比较(gt)
   */
  private Long idGt;
  /**
   * 编号 比较(gte)
   */
  private Long idGte;
  /**
   * 编号 比较(lt)
   */
  private Long idLt;
  /**
   * 编号 比较(lte)
   */
  private Long idLte;
  /**
   * 编号 比较(contains)
   */
  private Long idContains;
  /**
   * 编号 比较(notcontains)
   */
  private Long idNotcontains;
  /**
   * 编号 比较(startswith)
   */
  private Long idStartswith;
  /**
   * 编号 比较(endswith)
   */
  private Long idEndswith;
  /**
   * 编号 比较(isnull)
   */
  private Boolean idIsnull;
  /**
   * 编号 比较(isnotnull)
   */
  private Boolean idIsnotnull;

  /**
   * 名称(模糊搜索)
   */
  private String name;

  /**
   * 名称 比较(eq)
   */
  private String nameEq;
  /**
   * 名称 比较(neq)
   */
  private String nameNeq;
  /**
   * 名称 比较(gt)
   */
  private String nameGt;
  /**
   * 名称 比较(gte)
   */
  private String nameGte;
  /**
   * 名称 比较(lt)
   */
  private String nameLt;
  /**
   * 名称 比较(lte)
   */
  private String nameLte;
  /**
   * 名称 比较(contains)
   */
  private String nameContains;
  /**
   * 名称 比较(notcontains)
   */
  private String nameNotcontains;
  /**
   * 名称 比较(startswith)
   */
  private String nameStartswith;
  /**
   * 名称 比较(endswith)
   */
  private String nameEndswith;
  /**
   * 名称 比较(isnull)
   */
  private Boolean nameIsnull;
  /**
   * 名称 比较(isnotnull)
   */
  private Boolean nameIsnotnull;

  /**
   * 名称(精确搜索)
   */
  private List<String> nameInList;

  /**
   * 描述(模糊搜索)
   */
  private String description;

  /**
   * 描述 比较(eq)
   */
  private String descriptionEq;
  /**
   * 描述 比较(neq)
   */
  private String descriptionNeq;
  /**
   * 描述 比较(gt)
   */
  private String descriptionGt;
  /**
   * 描述 比较(gte)
   */
  private String descriptionGte;
  /**
   * 描述 比较(lt)
   */
  private String descriptionLt;
  /**
   * 描述 比较(lte)
   */
  private String descriptionLte;
  /**
   * 描述 比较(contains)
   */
  private String descriptionContains;
  /**
   * 描述 比较(notcontains)
   */
  private String descriptionNotcontains;
  /**
   * 描述 比较(startswith)
   */
  private String descriptionStartswith;
  /**
   * 描述 比较(endswith)
   */
  private String descriptionEndswith;
  /**
   * 描述 比较(isnull)
   */
  private Boolean descriptionIsnull;
  /**
   * 描述 比较(isnotnull)
   */
  private Boolean descriptionIsnotnull;

  /**
   * 是否有 附件
   */
  private Boolean files;

  /**
   * 最早创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeStart;

  /**
   * 最晚创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeEnd;

  /**
   * 创建时间 比较(eq)
   */
  private Date createTimeEq;
  /**
   * 创建时间 比较(neq)
   */
  private Date createTimeNeq;
  /**
   * 创建时间 比较(gt)
   */
  private Date createTimeGt;
  /**
   * 创建时间 比较(gte)
   */
  private Date createTimeGte;
  /**
   * 创建时间 比较(lt)
   */
  private Date createTimeLt;
  /**
   * 创建时间 比较(lte)
   */
  private Date createTimeLte;
  /**
   * 创建时间 比较(contains)
   */
  private Date createTimeContains;
  /**
   * 创建时间 比较(notcontains)
   */
  private Date createTimeNotcontains;
  /**
   * 创建时间 比较(startswith)
   */
  private Date createTimeStartswith;
  /**
   * 创建时间 比较(endswith)
   */
  private Date createTimeEndswith;
  /**
   * 创建时间 比较(isnull)
   */
  private Boolean createTimeIsnull;
  /**
   * 创建时间 比较(isnotnull)
   */
  private Boolean createTimeIsnotnull;

  /**
   * 创建人
   */
  private Long createUser;

  /**
   * 最小创建人
   */
  private Long createUserMin;

  /**
   * 最大创建人
   */
  private Long createUserMax;

  /**
   * 创建人 比较(eq)
   */
  private Long createUserEq;
  /**
   * 创建人 比较(neq)
   */
  private Long createUserNeq;
  /**
   * 创建人 比较(gt)
   */
  private Long createUserGt;
  /**
   * 创建人 比较(gte)
   */
  private Long createUserGte;
  /**
   * 创建人 比较(lt)
   */
  private Long createUserLt;
  /**
   * 创建人 比较(lte)
   */
  private Long createUserLte;
  /**
   * 创建人 比较(contains)
   */
  private Long createUserContains;
  /**
   * 创建人 比较(notcontains)
   */
  private Long createUserNotcontains;
  /**
   * 创建人 比较(startswith)
   */
  private Long createUserStartswith;
  /**
   * 创建人 比较(endswith)
   */
  private Long createUserEndswith;
  /**
   * 创建人 比较(isnull)
   */
  private Boolean createUserIsnull;
  /**
   * 创建人 比较(isnotnull)
   */
  private Boolean createUserIsnotnull;

  /**
   * 最早更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeStart;

  /**
   * 最晚更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeEnd;

  /**
   * 更新时间 比较(eq)
   */
  private Date lastUpdateTimeEq;
  /**
   * 更新时间 比较(neq)
   */
  private Date lastUpdateTimeNeq;
  /**
   * 更新时间 比较(gt)
   */
  private Date lastUpdateTimeGt;
  /**
   * 更新时间 比较(gte)
   */
  private Date lastUpdateTimeGte;
  /**
   * 更新时间 比较(lt)
   */
  private Date lastUpdateTimeLt;
  /**
   * 更新时间 比较(lte)
   */
  private Date lastUpdateTimeLte;
  /**
   * 更新时间 比较(contains)
   */
  private Date lastUpdateTimeContains;
  /**
   * 更新时间 比较(notcontains)
   */
  private Date lastUpdateTimeNotcontains;
  /**
   * 更新时间 比较(startswith)
   */
  private Date lastUpdateTimeStartswith;
  /**
   * 更新时间 比较(endswith)
   */
  private Date lastUpdateTimeEndswith;
  /**
   * 更新时间 比较(isnull)
   */
  private Boolean lastUpdateTimeIsnull;
  /**
   * 更新时间 比较(isnotnull)
   */
  private Boolean lastUpdateTimeIsnotnull;

  /**
   * 更新人
   */
  private Long lastUpdateUser;

  /**
   * 最小更新人
   */
  private Long lastUpdateUserMin;

  /**
   * 最大更新人
   */
  private Long lastUpdateUserMax;

  /**
   * 更新人 比较(eq)
   */
  private Long lastUpdateUserEq;
  /**
   * 更新人 比较(neq)
   */
  private Long lastUpdateUserNeq;
  /**
   * 更新人 比较(gt)
   */
  private Long lastUpdateUserGt;
  /**
   * 更新人 比较(gte)
   */
  private Long lastUpdateUserGte;
  /**
   * 更新人 比较(lt)
   */
  private Long lastUpdateUserLt;
  /**
   * 更新人 比较(lte)
   */
  private Long lastUpdateUserLte;
  /**
   * 更新人 比较(contains)
   */
  private Long lastUpdateUserContains;
  /**
   * 更新人 比较(notcontains)
   */
  private Long lastUpdateUserNotcontains;
  /**
   * 更新人 比较(startswith)
   */
  private Long lastUpdateUserStartswith;
  /**
   * 更新人 比较(endswith)
   */
  private Long lastUpdateUserEndswith;
  /**
   * 更新人 比较(isnull)
   */
  private Boolean lastUpdateUserIsnull;
  /**
   * 更新人 比较(isnotnull)
   */
  private Boolean lastUpdateUserIsnotnull;

  /**
   * 货件编号(模糊搜索)
   */
  private String shipmentId;

  /**
   * 货件编号 比较(eq)
   */
  private String shipmentIdEq;
  /**
   * 货件编号 比较(neq)
   */
  private String shipmentIdNeq;
  /**
   * 货件编号 比较(gt)
   */
  private String shipmentIdGt;
  /**
   * 货件编号 比较(gte)
   */
  private String shipmentIdGte;
  /**
   * 货件编号 比较(lt)
   */
  private String shipmentIdLt;
  /**
   * 货件编号 比较(lte)
   */
  private String shipmentIdLte;
  /**
   * 货件编号 比较(contains)
   */
  private String shipmentIdContains;
  /**
   * 货件编号 比较(notcontains)
   */
  private String shipmentIdNotcontains;
  /**
   * 货件编号 比较(startswith)
   */
  private String shipmentIdStartswith;
  /**
   * 货件编号 比较(endswith)
   */
  private String shipmentIdEndswith;
  /**
   * 货件编号 比较(isnull)
   */
  private Boolean shipmentIdIsnull;
  /**
   * 货件编号 比较(isnotnull)
   */
  private Boolean shipmentIdIsnotnull;

  /**
   * 货件编号(精确搜索)
   */
  private List<String> shipmentIdInList;

  /**
   * 卖家sku(模糊搜索)
   */
  private String sellerSku;

  /**
   * 卖家sku 比较(eq)
   */
  private String sellerSkuEq;
  /**
   * 卖家sku 比较(neq)
   */
  private String sellerSkuNeq;
  /**
   * 卖家sku 比较(gt)
   */
  private String sellerSkuGt;
  /**
   * 卖家sku 比较(gte)
   */
  private String sellerSkuGte;
  /**
   * 卖家sku 比较(lt)
   */
  private String sellerSkuLt;
  /**
   * 卖家sku 比较(lte)
   */
  private String sellerSkuLte;
  /**
   * 卖家sku 比较(contains)
   */
  private String sellerSkuContains;
  /**
   * 卖家sku 比较(notcontains)
   */
  private String sellerSkuNotcontains;
  /**
   * 卖家sku 比较(startswith)
   */
  private String sellerSkuStartswith;
  /**
   * 卖家sku 比较(endswith)
   */
  private String sellerSkuEndswith;
  /**
   * 卖家sku 比较(isnull)
   */
  private Boolean sellerSkuIsnull;
  /**
   * 卖家sku 比较(isnotnull)
   */
  private Boolean sellerSkuIsnotnull;

  /**
   * 卖家sku(精确搜索)
   */
  private List<String> sellerSkuInList;

  /**
   * 亚马逊配送网络sku(模糊搜索)
   */
  private String fulfillmentNetworkSku;

  /**
   * 亚马逊配送网络sku 比较(eq)
   */
  private String fulfillmentNetworkSkuEq;
  /**
   * 亚马逊配送网络sku 比较(neq)
   */
  private String fulfillmentNetworkSkuNeq;
  /**
   * 亚马逊配送网络sku 比较(gt)
   */
  private String fulfillmentNetworkSkuGt;
  /**
   * 亚马逊配送网络sku 比较(gte)
   */
  private String fulfillmentNetworkSkuGte;
  /**
   * 亚马逊配送网络sku 比较(lt)
   */
  private String fulfillmentNetworkSkuLt;
  /**
   * 亚马逊配送网络sku 比较(lte)
   */
  private String fulfillmentNetworkSkuLte;
  /**
   * 亚马逊配送网络sku 比较(contains)
   */
  private String fulfillmentNetworkSkuContains;
  /**
   * 亚马逊配送网络sku 比较(notcontains)
   */
  private String fulfillmentNetworkSkuNotcontains;
  /**
   * 亚马逊配送网络sku 比较(startswith)
   */
  private String fulfillmentNetworkSkuStartswith;
  /**
   * 亚马逊配送网络sku 比较(endswith)
   */
  private String fulfillmentNetworkSkuEndswith;
  /**
   * 亚马逊配送网络sku 比较(isnull)
   */
  private Boolean fulfillmentNetworkSkuIsnull;
  /**
   * 亚马逊配送网络sku 比较(isnotnull)
   */
  private Boolean fulfillmentNetworkSkuIsnotnull;

  /**
   * 亚马逊配送网络sku(精确搜索)
   */
  private List<String> fulfillmentNetworkSkuInList;

  /**
   * 申请数量
   */
  private Integer quantityShipped;

  /**
   * 最小申请数量
   */
  private Integer quantityShippedMin;

  /**
   * 最大申请数量
   */
  private Integer quantityShippedMax;

  /**
   * 申请数量 比较(eq)
   */
  private Integer quantityShippedEq;
  /**
   * 申请数量 比较(neq)
   */
  private Integer quantityShippedNeq;
  /**
   * 申请数量 比较(gt)
   */
  private Integer quantityShippedGt;
  /**
   * 申请数量 比较(gte)
   */
  private Integer quantityShippedGte;
  /**
   * 申请数量 比较(lt)
   */
  private Integer quantityShippedLt;
  /**
   * 申请数量 比较(lte)
   */
  private Integer quantityShippedLte;
  /**
   * 申请数量 比较(contains)
   */
  private Integer quantityShippedContains;
  /**
   * 申请数量 比较(notcontains)
   */
  private Integer quantityShippedNotcontains;
  /**
   * 申请数量 比较(startswith)
   */
  private Integer quantityShippedStartswith;
  /**
   * 申请数量 比较(endswith)
   */
  private Integer quantityShippedEndswith;
  /**
   * 申请数量 比较(isnull)
   */
  private Boolean quantityShippedIsnull;
  /**
   * 申请数量 比较(isnotnull)
   */
  private Boolean quantityShippedIsnotnull;

  /**
   * 接收数量
   */
  private Integer quantityReceived;

  /**
   * 最小接收数量
   */
  private Integer quantityReceivedMin;

  /**
   * 最大接收数量
   */
  private Integer quantityReceivedMax;

  /**
   * 接收数量 比较(eq)
   */
  private Integer quantityReceivedEq;
  /**
   * 接收数量 比较(neq)
   */
  private Integer quantityReceivedNeq;
  /**
   * 接收数量 比较(gt)
   */
  private Integer quantityReceivedGt;
  /**
   * 接收数量 比较(gte)
   */
  private Integer quantityReceivedGte;
  /**
   * 接收数量 比较(lt)
   */
  private Integer quantityReceivedLt;
  /**
   * 接收数量 比较(lte)
   */
  private Integer quantityReceivedLte;
  /**
   * 接收数量 比较(contains)
   */
  private Integer quantityReceivedContains;
  /**
   * 接收数量 比较(notcontains)
   */
  private Integer quantityReceivedNotcontains;
  /**
   * 接收数量 比较(startswith)
   */
  private Integer quantityReceivedStartswith;
  /**
   * 接收数量 比较(endswith)
   */
  private Integer quantityReceivedEndswith;
  /**
   * 接收数量 比较(isnull)
   */
  private Boolean quantityReceivedIsnull;
  /**
   * 接收数量 比较(isnotnull)
   */
  private Boolean quantityReceivedIsnotnull;

  /**
   * 每箱数量
   */
  private Integer quantityInCase;

  /**
   * 最小每箱数量
   */
  private Integer quantityInCaseMin;

  /**
   * 最大每箱数量
   */
  private Integer quantityInCaseMax;

  /**
   * 每箱数量 比较(eq)
   */
  private Integer quantityInCaseEq;
  /**
   * 每箱数量 比较(neq)
   */
  private Integer quantityInCaseNeq;
  /**
   * 每箱数量 比较(gt)
   */
  private Integer quantityInCaseGt;
  /**
   * 每箱数量 比较(gte)
   */
  private Integer quantityInCaseGte;
  /**
   * 每箱数量 比较(lt)
   */
  private Integer quantityInCaseLt;
  /**
   * 每箱数量 比较(lte)
   */
  private Integer quantityInCaseLte;
  /**
   * 每箱数量 比较(contains)
   */
  private Integer quantityInCaseContains;
  /**
   * 每箱数量 比较(notcontains)
   */
  private Integer quantityInCaseNotcontains;
  /**
   * 每箱数量 比较(startswith)
   */
  private Integer quantityInCaseStartswith;
  /**
   * 每箱数量 比较(endswith)
   */
  private Integer quantityInCaseEndswith;
  /**
   * 每箱数量 比较(isnull)
   */
  private Boolean quantityInCaseIsnull;
  /**
   * 每箱数量 比较(isnotnull)
   */
  private Boolean quantityInCaseIsnotnull;

  /**
   * 最早发布日期
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date releaseDateStart;

  /**
   * 最晚发布日期
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date releaseDateEnd;

  /**
   * 发布日期 比较(eq)
   */
  private Date releaseDateEq;
  /**
   * 发布日期 比较(neq)
   */
  private Date releaseDateNeq;
  /**
   * 发布日期 比较(gt)
   */
  private Date releaseDateGt;
  /**
   * 发布日期 比较(gte)
   */
  private Date releaseDateGte;
  /**
   * 发布日期 比较(lt)
   */
  private Date releaseDateLt;
  /**
   * 发布日期 比较(lte)
   */
  private Date releaseDateLte;
  /**
   * 发布日期 比较(contains)
   */
  private Date releaseDateContains;
  /**
   * 发布日期 比较(notcontains)
   */
  private Date releaseDateNotcontains;
  /**
   * 发布日期 比较(startswith)
   */
  private Date releaseDateStartswith;
  /**
   * 发布日期 比较(endswith)
   */
  private Date releaseDateEndswith;
  /**
   * 发布日期 比较(isnull)
   */
  private Boolean releaseDateIsnull;
  /**
   * 发布日期 比较(isnotnull)
   */
  private Boolean releaseDateIsnotnull;

  /**
   * 准备说明(模糊搜索)
   */
  private String prepInstruction;

  /**
   * 准备说明 比较(eq)
   */
  private String prepInstructionEq;
  /**
   * 准备说明 比较(neq)
   */
  private String prepInstructionNeq;
  /**
   * 准备说明 比较(gt)
   */
  private String prepInstructionGt;
  /**
   * 准备说明 比较(gte)
   */
  private String prepInstructionGte;
  /**
   * 准备说明 比较(lt)
   */
  private String prepInstructionLt;
  /**
   * 准备说明 比较(lte)
   */
  private String prepInstructionLte;
  /**
   * 准备说明 比较(contains)
   */
  private String prepInstructionContains;
  /**
   * 准备说明 比较(notcontains)
   */
  private String prepInstructionNotcontains;
  /**
   * 准备说明 比较(startswith)
   */
  private String prepInstructionStartswith;
  /**
   * 准备说明 比较(endswith)
   */
  private String prepInstructionEndswith;
  /**
   * 准备说明 比较(isnull)
   */
  private Boolean prepInstructionIsnull;
  /**
   * 准备说明 比较(isnotnull)
   */
  private Boolean prepInstructionIsnotnull;

  /**
   * 准备说明(精确搜索)
   */
  private List<String> prepInstructionInList;

  /**
   * 准备所有者(模糊搜索)
   */
  private String prepOwner;

  /**
   * 准备所有者 比较(eq)
   */
  private String prepOwnerEq;
  /**
   * 准备所有者 比较(neq)
   */
  private String prepOwnerNeq;
  /**
   * 准备所有者 比较(gt)
   */
  private String prepOwnerGt;
  /**
   * 准备所有者 比较(gte)
   */
  private String prepOwnerGte;
  /**
   * 准备所有者 比较(lt)
   */
  private String prepOwnerLt;
  /**
   * 准备所有者 比较(lte)
   */
  private String prepOwnerLte;
  /**
   * 准备所有者 比较(contains)
   */
  private String prepOwnerContains;
  /**
   * 准备所有者 比较(notcontains)
   */
  private String prepOwnerNotcontains;
  /**
   * 准备所有者 比较(startswith)
   */
  private String prepOwnerStartswith;
  /**
   * 准备所有者 比较(endswith)
   */
  private String prepOwnerEndswith;
  /**
   * 准备所有者 比较(isnull)
   */
  private Boolean prepOwnerIsnull;
  /**
   * 准备所有者 比较(isnotnull)
   */
  private Boolean prepOwnerIsnotnull;

  /**
   * 准备所有者(精确搜索)
   */
  private List<String> prepOwnerInList;

  /**
   * 所属FBA货件
   */
  private Long parentFbaShipment;

  /**
   * 最小所属FBA货件
   */
  private Long parentFbaShipmentMin;

  /**
   * 最大所属FBA货件
   */
  private Long parentFbaShipmentMax;

  /**
   * 所属FBA货件 比较(eq)
   */
  private Long parentFbaShipmentEq;
  /**
   * 所属FBA货件 比较(neq)
   */
  private Long parentFbaShipmentNeq;
  /**
   * 所属FBA货件 比较(gt)
   */
  private Long parentFbaShipmentGt;
  /**
   * 所属FBA货件 比较(gte)
   */
  private Long parentFbaShipmentGte;
  /**
   * 所属FBA货件 比较(lt)
   */
  private Long parentFbaShipmentLt;
  /**
   * 所属FBA货件 比较(lte)
   */
  private Long parentFbaShipmentLte;
  /**
   * 所属FBA货件 比较(contains)
   */
  private Long parentFbaShipmentContains;
  /**
   * 所属FBA货件 比较(notcontains)
   */
  private Long parentFbaShipmentNotcontains;
  /**
   * 所属FBA货件 比较(startswith)
   */
  private Long parentFbaShipmentStartswith;
  /**
   * 所属FBA货件 比较(endswith)
   */
  private Long parentFbaShipmentEndswith;
  /**
   * 所属FBA货件 比较(isnull)
   */
  private Boolean parentFbaShipmentIsnull;
  /**
   * 所属FBA货件 比较(isnotnull)
   */
  private Boolean parentFbaShipmentIsnotnull;

  /**
   * 表单名称
   */
  private String formName;

  /**
   * 工作流状态
   */
  private Integer wfStatus;
}
